iT邦幫忙

2024 iThome 鐵人賽

DAY 2
1

第2章: 瞭解B4X程式語言

語法基礎

B4X 程式語言基於 BASIC 語言,但進行了現代化和簡化,讓它更適合現代應用程式的開發。B4X 的語法簡單、易讀、且直觀,非常適合初學者。同時,它又具備強大的功能,足以支援複雜的專案。
B4X 語言的基礎構成包括關鍵字、變數、運算子和控制結構。它不像其他語言那樣依賴於大括號或分號,而是以縮排和換行來劃分程式結構。這讓程式碼更容易閱讀和維護。
基本的語法結構如下:
• Sub 與 End Sub:定義一個子程序。子程序是可以被重複使用的程式碼塊。
• If…Then…Else:條件判斷結構。
• For…Next、Do…While、Do…Until:循環結構。

變數與資料型態

在 B4X 中,變數是用來存儲資料的名稱容器。B4X 語言支援的主要資料型態包括:
• Boolean: 用於存儲 True 或 False 值。
• Int: 整數型態,範圍在 -2,147,483,648 到 2,147,483,647 之間。
• Long: 大範圍整數型態。
• Float: 單精度浮點數,適合表示小數。
• Double: 雙精度浮點數,比 Float 更精確。
• String: 字符串,用於存儲文本。
• Array: 陣列,可以存放多個相同類型的值。
B4X 語言中的變數宣告使用 Dim 關鍵字,後接變數名稱和選擇性的型態。例如:
basic
程式碼範例
Dim x As Int
Dim name As String
Dim isActive As Boolean
如果不指定型態,B4X 將自動根據賦予的值來推斷型態。變數宣告後,可以通過賦值來存放資料:
basic
程式碼範例
x = 10
name = "John"
isActive = True
B4X 也支援複合資料型態如列表(List)和字典(Map),它們在實際開發中非常實用。列表是一種有序的集合,而字典則是一種鍵值對集合:
basic程式碼

Dim numbers As List
numbers.Initialize
numbers.Add(1)
numbers.Add(2)

Dim dict As Map
dict.Initialize
dict.Put("key1", "value1")
dict.Put("key2", "value2")

控制結構與流程控制

B4X 提供了豐富的控制結構,允許開發者靈活地控制程式的執行流程。這些控制結構包括條件語句、循環語句和選擇語句等。
1. 條件語句:最基本的條件語句是 If...Then...Else,用於根據特定條件執行不同的程式碼塊。例如:
basic
程式碼範例

Dim score As Int = 85

If score >= 90 Then
    Log("優秀")
Else If score >= 60 Then
    Log("及格")
Else
    Log("不及格")
End If

這裡,根據分數的不同,程式會輸出不同的評價。
2. 循環語句:B4X 支援多種循環語句來處理重複操作,如 For...Next、Do...While、和 Do...Until。
• For...Next:適合用於已知次數的循環:
basic程式碼範例

For i = 1 To 5
    Log(i)
Next
這段程式會輸出1到5的數字。
    • Do...While 和 Do...Until:用於未知次數的循環,根據條件決定是否繼續執行:
basic

程式碼範例

Dim count As Int = 0

Do While count < 3
    Log(count)
    count = count + 1
Loop

這段程式會輸出0到2的數字。
3. 選擇語句 (Select Case):用於多條件的選擇語句,類似於多重 If...Else:
basic程式碼範例

Dim grade As Char = "B"

Select grade
    Case "A"
        Log("優秀")
    Case "B"
        Log("良好")
    Case "C"
        Log("中等")
    Case Else
        Log("需努力")
End Select

這段程式會根據 grade 的值輸出對應的訊息。

範例程式

以下範例程式展示了如何在 B4X 中使用基本的語法、變數、資料型態,以及控制結構來實作一個簡單的計算機應用程式。該應用程式接受兩個整數輸入,然後執行加法或減法操作,並顯示結果。
basic程式碼範例

Sub Process_Globals
    ' 全域變數在這裡宣告
End Sub

Sub Globals
    ' 活動(Activity)變數宣告
    Private edtNumber1 As EditText
    Private edtNumber2 As EditText
    Private lblResult As Label
    Private btnAdd As Button
    Private btnSubtract As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
    ' 設定介面佈局
    Activity.LoadLayout("Layout1")

    ' 初始化UI元件
    edtNumber1.Initialize("edtNumber1")
    edtNumber2.Initialize("edtNumber2")
    lblResult.Initialize("")
    btnAdd.Initialize("btnAdd")
    btnSubtract.Initialize("btnSubtract")
    
    ' 設定按鈕文字
    btnAdd.Text = "加"
    btnSubtract.Text = "減"

    ' 設定UI元件佈局
    Activity.AddView(edtNumber1, 10dip, 10dip, 80%x, 60dip)
    Activity.AddView(edtNumber2, 10dip, 80dip, 80%x, 60dip)
    Activity.AddView(btnAdd, 10dip, 150dip, 80dip, 60dip)
    Activity.AddView(btnSubtract, 100dip, 150dip, 80dip, 60dip)
    Activity.AddView(lblResult, 10dip, 220dip, 100%x - 20dip, 60dip)
End Sub

Sub btnAdd_Click
    ' 取得輸入值並執行加法
    Dim num1 As Int = edtNumber1.Text
    Dim num2 As Int = edtNumber2.Text
    Dim result As Int = num1 + num2
    lblResult.Text = "結果: " & result
End Sub

Sub btnSubtract_Click
    ' 取得輸入值並執行減法
    Dim num1 As Int = edtNumber1.Text
    Dim num2 As Int = edtNumber2.Text
    Dim result As Int = num1 - num2
    lblResult.Text = "結果: " & result
End Sub

範例解說
• 這個簡單的計算機應用程式允許用戶輸入兩個整數,然後選擇加法或減法來計算結果。
• Activity_Create 子程序負責設定介面佈局和初始化各個 UI 元件。
• btnAdd_Click 和 btnSubtract_Click 子程序分別處理加法和減法運算,並將結果顯示在標籤 lblResult 中。
https://ithelp.ithome.com.tw/upload/images/20240901/20168401PQlglyJcrQ.jpg
參考網址
https://www.b4x.com/b4a.html
https://www.b4x.com/teach.html


上一篇
Basic30天學會行動App-第1章
下一篇
Basic30天學會行動App-第3章
系列文
用最接近自然語言的Basic30天學會行動App8
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言